package logica;//J7

import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import entidades.Campeonato;
import entidades.Cancha;
import entidades.DiasSemana;
import entidades.Empresa;
import entidades.Fixture;
import entidades.Invitacion;
import entidades.Reserva;
import entidades.ReservaCampeonato;
import entidades.ReservaIndependiente;
import entidades.Usuario;
import entidades.Equipo;
import exceptions.ClienteException;
import exceptions.ReservaException;

public interface IControladorCentral {
	
	public int altaUsuario(Usuario u) throws SQLException;
	public List<Cancha> listarCanchasHab();
	public int altaEquipo(Equipo eq);
	public Usuario buscarUsuarioLogueo(Usuario usu);
	public Empresa buscarEmpresaLogueo(Empresa emp);
	public int altaEmpresa(Empresa emp) throws SQLException;
	public int altaCancha(Cancha can) throws SQLException;
	public List<DiasSemana> listarFechasDisponibles(Cancha canchaSeleccionada, long lunes, long domingo);
	public int altaReservaIndependiente (ReservaIndependiente res) throws SQLException;
	
	public List<ReservaIndependiente> ListarResIndVigXEmpresa (Empresa emp) ;
	public List<Usuario> ListarUsuHab_NoPenalizado();
	public int altaInvitacion(List<Invitacion> invitaciones) throws SQLException;
	public int actualizarEstadoReservaIndependiente (ReservaIndependiente res, String estado);
	public List<Cancha> listarCanchasHabilitadasXEmp(Empresa emp);
	public int altaCampeonato(Campeonato camp, List<ReservaCampeonato> reservas);
	public List<Campeonato> listarCampeonatosVigentesXEmpresa(Empresa emp);
	public List<Equipo> listarEquipos();
	public int crearFixture(List<ReservaCampeonato> reservas, List<Equipo> equipos);
	public int cambiarEstadoCampeonato (Campeonato camp);
	public List<Campeonato> listarCampeonatosEnCursoXEmpresa(Empresa emp);
	public int actualizartablaPosiciones(Campeonato camp);
	public int actualizarFixture(Fixture fixture, String estado);
	public List<ReservaIndependiente> ListarReservasUsuario (Usuario usu);
	public List<Usuario> ListarContactosUsuario (Usuario usu);
	public List<Invitacion> listarInvitacionesRecibidasVigentes(Usuario usu);
	public int aceptarRechazarInvitacion (Invitacion inv);
	public void cerrarSesion();


	//public List<Cancha> listarCanchasHabilitadas();
	/*
	public Usuario seleccionarUsuario();
	
	
	public Cancha seleccionarCancha();
	public List<Date> listarFechasDisponibles(Cancha c);
	public int altaReserva(Reserva r);
	public Reserva seleccionarReserva();
	public List<Usuario> seleccionarUsuarios();
	public int envioInvitacion(Invitacion i);
	public void destroy();
		*/
	

}
